package com.ktgj.customer.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ktgj.common.core.annotation.Excel;
import com.ktgj.common.core.web.domain.BaseEntity;

/**
 * 会员卡对象 customer_card
 * 
 * @author ruoyi
 * @date 2021-07-30
 */
public class CustomerCard extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long customerCardId;

    /** 卡号 */
    @Excel(name = "卡号")
    private String cardCode;

    /** 卡ID */
    @Excel(name = "卡ID")
    private Long cardId;

    /** 附属卡 */
    @Excel(name = "附属卡")
    private String parentCardId;

    /** 客户基本信息ID */
    @Excel(name = "客户基本信息ID")
    private Long customerId;

    /** 创建人 */
    @Excel(name = "创建人")
    private Long createEmployeeId;

    /** 生效日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生效日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date validDate;

    /** 失效日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "失效日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date invalidDate;

    /** 修改人 */
    @Excel(name = "修改人")
    private Long updateEmployeeId;

    /** 卡状态： 已生效、已过期 */
    @Excel(name = "卡状态： 已生效、已过期")
    private String cardStatus;

    /** 售卡人id */
    @Excel(name = "售卡人id")
    private Long carddmansId;

    /** 售卡价格 */
    @Excel(name = "售卡价格")
    private BigDecimal salePrice;

    /** 续费日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "续费日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date businessDate;

    /** 子订单id */
    @Excel(name = "子订单id")
    private Long orderSubId;

    /** 分配给谁 */
    @Excel(name = "分配给谁")
    private Long carddmansId2;

    /** 分配部门ID */
    @Excel(name = "分配部门ID")
    private Long carddeptId;

    /** 售卡人部门编号 */
    @Excel(name = "售卡人部门编号")
    private Long saleDeptId;

    /** 激活人员或者是给客户开卡人员或退卡人员 */
    @Excel(name = "激活人员或者是给客户开卡人员或退卡人员")
    private Long activeEmployeeId;

    /** 续费ID(0表示新开卡，其它表示续费) */
    @Excel(name = "续费ID(0表示新开卡，其它表示续费)")
    private Long xfId;

    /** 续费日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "续费日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date xfDate;

    /**  未设置 = 0,Web = 10, Wap = 20,IOS = 30,Android = 40,SmallAPP = 50,CRM = 60,卡续费升级65，微信= 70,,空铁管家= 80,空铁管家ios= 90,空铁管家安卓 = 100,金色平台= 110,金色逸站销售系统 = 120 */
    @Excel(name = " 未设置 = 0,Web = 10, Wap = 20,IOS = 30,Android = 40,SmallAPP = 50,CRM = 60,卡续费升级65，微信= 70,,空铁管家= 80,空铁管家ios= 90,空铁管家安卓 = 100,金色平台= 110,金色逸站销售系统 = 120")
    private Long sourceway;

    /** 实际售卡日期(准确) */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际售卡日期(准确)", width = 30, dateFormat = "yyyy-MM-dd")
    private Date saleDateAct;

    /** 退卡金额 */
    @Excel(name = "退卡金额")
    private BigDecimal cancelAmount;

    /** 退卡时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "退卡时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date cancelDate;


    /**
     * 卡级别
     * */
    private Long cardLevel;

    /**
     * 会员到期时间（毫秒）
     * */
    private Long millisecond;

    public Long getMillisecond() {
        return millisecond;
    }

    public void setMillisecond(Long millisecond) {
        this.millisecond = millisecond;
    }

    public CustomerCard(Long cardId, String value) {
        this.customerCardId = cardId;
        this.cardStatus = value;
    }

    public CustomerCard () {

    }

    public Long getCardLevel() {
        return cardLevel;
    }

    public void setCardLevel(Long cardLevel) {
        this.cardLevel = cardLevel;
    }

    public void setCustomerCardId(Long customerCardId)
    {
        this.customerCardId = customerCardId;
    }

    public Long getCustomerCardId()
    {
        return customerCardId;
    }
    public void setCardCode(String cardCode)
    {
        this.cardCode = cardCode;
    }

    public String getCardCode()
    {
        return cardCode;
    }
    public void setCardId(Long cardId)
    {
        this.cardId = cardId;
    }

    public Long getCardId()
    {
        return cardId;
    }
    public void setParentCardId(String parentCardId)
    {
        this.parentCardId = parentCardId;
    }

    public String getParentCardId()
    {
        return parentCardId;
    }
    public void setCustomerId(Long customerId)
    {
        this.customerId = customerId;
    }

    public Long getCustomerId()
    {
        return customerId;
    }
    public void setCreateEmployeeId(Long createEmployeeId)
    {
        this.createEmployeeId = createEmployeeId;
    }

    public Long getCreateEmployeeId()
    {
        return createEmployeeId;
    }
    public void setValidDate(Date validDate)
    {
        this.validDate = validDate;
    }

    public Date getValidDate()
    {
        return validDate;
    }
    public void setInvalidDate(Date invalidDate)
    {
        this.invalidDate = invalidDate;
    }

    public Date getInvalidDate()
    {
        return invalidDate;
    }
    public void setUpdateEmployeeId(Long updateEmployeeId)
    {
        this.updateEmployeeId = updateEmployeeId;
    }

    public Long getUpdateEmployeeId()
    {
        return updateEmployeeId;
    }
    public void setCardStatus(String cardStatus)
    {
        this.cardStatus = cardStatus;
    }

    public String getCardStatus()
    {
        return cardStatus;
    }
    public void setCarddmansId(Long carddmansId)
    {
        this.carddmansId = carddmansId;
    }

    public Long getCarddmansId()
    {
        return carddmansId;
    }
    public void setSalePrice(BigDecimal salePrice)
    {
        this.salePrice = salePrice;
    }

    public BigDecimal getSalePrice()
    {
        return salePrice;
    }
    public void setBusinessDate(Date businessDate)
    {
        this.businessDate = businessDate;
    }

    public Date getBusinessDate()
    {
        return businessDate;
    }
    public void setOrderSubId(Long orderSubId)
    {
        this.orderSubId = orderSubId;
    }

    public Long getOrderSubId()
    {
        return orderSubId;
    }
    public void setCarddmansId2(Long carddmansId2)
    {
        this.carddmansId2 = carddmansId2;
    }

    public Long getCarddmansId2()
    {
        return carddmansId2;
    }
    public void setCarddeptId(Long carddeptId)
    {
        this.carddeptId = carddeptId;
    }

    public Long getCarddeptId()
    {
        return carddeptId;
    }
    public void setSaleDeptId(Long saleDeptId)
    {
        this.saleDeptId = saleDeptId;
    }

    public Long getSaleDeptId()
    {
        return saleDeptId;
    }
    public void setActiveEmployeeId(Long activeEmployeeId)
    {
        this.activeEmployeeId = activeEmployeeId;
    }

    public Long getActiveEmployeeId()
    {
        return activeEmployeeId;
    }
    public void setXfId(Long xfId)
    {
        this.xfId = xfId;
    }

    public Long getXfId()
    {
        return xfId;
    }
    public void setXfDate(Date xfDate)
    {
        this.xfDate = xfDate;
    }

    public Date getXfDate()
    {
        return xfDate;
    }
    public void setSourceway(Long sourceway)
    {
        this.sourceway = sourceway;
    }

    public Long getSourceway()
    {
        return sourceway;
    }
    public void setSaleDateAct(Date saleDateAct)
    {
        this.saleDateAct = saleDateAct;
    }

    public Date getSaleDateAct()
    {
        return saleDateAct;
    }
    public void setCancelAmount(BigDecimal cancelAmount)
    {
        this.cancelAmount = cancelAmount;
    }

    public BigDecimal getCancelAmount()
    {
        return cancelAmount;
    }
    public void setCancelDate(Date cancelDate)
    {
        this.cancelDate = cancelDate;
    }

    public Date getCancelDate()
    {
        return cancelDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("customerCardId", getCustomerCardId())
                .append("cardCode", getCardCode())
                .append("cardId", getCardId())
                .append("parentCardId", getParentCardId())
                .append("customerId", getCustomerId())
                .append("createEmployeeId", getCreateEmployeeId())
                .append("createTime", getCreateTime())
                .append("validDate", getValidDate())
                .append("invalidDate", getInvalidDate())
                .append("updateEmployeeId", getUpdateEmployeeId())
                .append("updateTime", getUpdateTime())
                .append("cardStatus", getCardStatus())
                .append("carddmansId", getCarddmansId())
                .append("salePrice", getSalePrice())
                .append("businessDate", getBusinessDate())
                .append("orderSubId", getOrderSubId())
                .append("carddmansId2", getCarddmansId2())
                .append("carddeptId", getCarddeptId())
                .append("saleDeptId", getSaleDeptId())
                .append("activeEmployeeId", getActiveEmployeeId())
                .append("xfId", getXfId())
                .append("xfDate", getXfDate())
                .append("sourceway", getSourceway())
                .append("remark", getRemark())
                .append("saleDateAct", getSaleDateAct())
                .append("cancelAmount", getCancelAmount())
                .append("cancelDate", getCancelDate())
                .toString();
    }
}
